let indexModule = (function () {
    let $baseBox = $('.baseBox'),
        $baseBoxText = $baseBox.find('span'),
        $baseBoxSingout = $baseBox.find('a')

    // 基于发布订阅管理我们获取到个人信息和权限信息后要处理的事情
    let $plan = $.Callbacks();

    // 显示欢迎的基本信息和退出登录
    $plan.add((_, baseInfo) => {
        $baseBoxText.html(`您好：${baseInfo.name||''}`);
        $baseBoxSingout.click(async () => {
            let result = await axios.get('/user/signout');
            if (result.code == 0) {
                // 清除之前本地缓存的数据信息
                localStorage.clear();
                window.location.href = 'login.html';
                return;
            }
            alert('当前网络繁忙');
        });
    });




    return {
        async init() {
            // 1.验证当前用户是否登录
            let result = await axios.get('/user/login');
            if (result.code != 0) {
                // 未登录
                alert('请您先登录~~');
                window.location.href = 'login.html';
                return;
            }
            // 2.获取登录用户的权限信息和个人信息（AJAX并行）
            let [power, baseInfo] = await axios.all([
                axios.get('/user/power'),
                axios.get('/user/info')
            ]);
            power.code == 0 ? power = power.power : null;
            baseInfo.code == 0 ? baseInfo = baseInfo.data : null;
            // 3. 通知计划表中的任务执行
            $plan.fire(power, baseInfo);

        }
    };
})();
indexModule.init();